package com.lyc.domain.strategy.service.rule.tree;

import com.lyc.domain.strategy.service.rule.tree.factory.DefaultTreeFactory;

import java.util.Date;

/**
 * @author lyc
 * @description 规则树接口
 */
public interface ILogicTreeNode {
    /**
     * 规则结点的执行方法
     * @param  userId 用户id
     * @param  strategyId 策略id
     * @param  awardId 奖品id
     * @param  ruleValue 该结点对应的规则模型的规则值
     * @param  endDateTime 活动结束时间
     * @return DefaultTreeFactory.TreeActionEntity 树动作封装类：过滤结果（接管|放行） + 奖品信息
     */
    DefaultTreeFactory.TreeActionEntity logic(String userId, Long strategyId, Integer awardId, String ruleValue, Date endDateTime);

}
